/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.pucp.Maestros.Controlador.CargaXML;

import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import pe.edu.pucp.Maestros.DAO.EnvioDAO;
import pe.edu.pucp.Maestros.Vista.CargaXMLGUI;
import pe.edu.pucp.Modelo.Aeropuerto;
import pe.edu.pucp.Modelo.Cliente;
import pe.edu.pucp.Modelo.Envio;
import pe.edu.pucp.Modelo.EstadoEnvio;
import pe.edu.pucp.Modelo.Usuario;
import pe.edu.pucp.Util.Constante;
import pe.edu.pucp.Util.LogHelper;

/**
 *
 * @author oscar
 */
public class EnvioControlador {
     private Envio envio;
     private EnvioDAO m;
     private CargaXMLGUI view;

    public EnvioControlador(EnvioDAO m, CargaXMLGUI envioView) {
        this.m = m;
        this.view = envioView;
    }
    
    public void CargarPrueba(Usuario usr){
        if (envio == null) {
                envio = new Envio();
                }     
            try { 
                SAXBuilder builder = new SAXBuilder(false);                
                Document doc = builder.build(view.getNombreArchivoDatosSimulacion()+"/ENVIO.xml");
                
                Element raiz7 = doc.getRootElement(); 
                List equipos = raiz7.getChildren("Envio"); 
                Iterator i = equipos.iterator(); 
                while (i.hasNext()) { 
                    Element e7 = (Element) i.next();       
                    int a1 = Integer.parseInt(e7.getChild("idenvio").getValue());
                    int a2 = Integer.parseInt(e7.getChild("idcliente").getValue());
                    int a3 = Integer.parseInt(e7.getChild("idestado").getValue());
                    int a4 = Integer.parseInt(e7.getChild("idusuario").getValue());
                    int a5 = Integer.parseInt(e7.getChild("idaeropuerto").getValue());
                    String a6 = e7.getChild("direccion").getValue();
                    String a7 = e7.getChild("receptor").getValue();
                    Double a8 = Double.parseDouble(e7.getChild("costo").getValue());        
                    Integer a9 = Integer.parseInt(e7.getChild("puntaje").getValue());
                    Integer a10 = Integer.parseInt(e7.getChild("numpack").getValue());
                    Integer a11 = Integer.parseInt(e7.getChild("numpacklost").getValue());
                    

                    Cliente d = new Cliente();
                    d.setIdcliente(a2);
                    
                    EstadoEnvio e = new EstadoEnvio();
                    e.setIdestado(a3);
                    
                    Usuario f = new Usuario();
                    f.setIdusuario(a4);
                    
                    Aeropuerto g = new Aeropuerto();
                    g.setIdaeropuerto(a5);
                    
                    envio.setCliente(d);
                    envio.setEstadoEnvio(e);
                    envio.setUsuario(f);
                    envio.setAeropuerto(g);
                    envio.setDireccion(a6);
                    envio.setReceptor(a7);
                    envio.setCosto(a8);
                    envio.setPuntaje(a9);
                    envio.setNumpack(a10);
                    envio.setNumpacklost(a11);
                    envio.setFechareg(new Date());

                    m.guardarEnvio(envio);
                    
                } 
                LogHelper.registrarOperacion(usr, Constante.ACCION_CARGAR, Constante.OBJETO_ENVIO, "Se cargaron "+equipos.size()+" registros de envios");
            } 
            catch (JDOMException | IOException | NumberFormatException e7) { }         
    }
}
